<template>
  <footer class="footer">
    <span class="todo-count"
      >剩余<strong>{{ leftCount }}</strong></span
    >
    <ul class="filters">
      <li>
        <!-- 给class绑定动态属性,通过父组件传入的type的值,来控制样式的显示和隐藏 -->
        <a
          :class="{ selected: type === 'all' }"
          href="javascript:;"
          @click="$emit('changeType', 'all')"
          >全部</a
        >
        <!-- 给a标签绑定点击事件,点击的时候向父组件传值 -->
      </li>
      <li>
        <a
          :class="{ selected: type === 'no' }"
          href="javascript:;"
          @click="$emit('changeType', 'no')"
          >未完成</a
        >
      </li>
      <li>
        <a
          :class="{ selected: type === 'yes' }"
          href="javascript:;"
          @click="$emit('changeType', 'yes')"
          >已完成</a
        >
      </li>
    </ul>
    <!-- 使用computed,isShow用来控制button标签的显示和隐藏 -->
    <!-- 给button标签,绑定点击事件,点击后将向父组件传值,触发父组件的allDelFn,从而删除指定元素 -->
    <button class="clear-completed" v-show="isShow" @click="allDel">
      清除已完成
    </button>
  </footer>
</template>

<script>
export default {
  props: {
    list: {
      type: Array,
      requeird: true,
    },
    type: String,
  },
  computed: {
    // 使用计算属性,来计算剩余任务的数量
    leftCount() {
      return this.list.filter((item) => !item.isDone).length
    },
    isShow() {
      return this.list.some((item) => item.isDone)
    },
  },
  methods: {
    allDel() {
      this.$emit('allDel')
    },
  },
}
</script>
